The invention relates to an image processing system and method, especially, but not exclusively, within the context of toys and video games.
Video games and graphics games and other computer-related entertainment software applications have become increasingly more widespread, and are currently being used even on mobile phones. In multi-player games or applications, players use animated graphical representations, known as avatars, as their representatives in a virtual environment. Dedicated devices are being marketed for electronic pet toys, e.g., Tamaguchi: a rearing game, wherein the user has to take care of a virtual animal rendered on a display monitor.
The creation of virtual interactive worlds with graphics creatures and objects is an art form that does not lend itself well to being masterfully applied by a layperson, let alone by a child. Nevertheless, software applications that enable a layperson or a youngster to create such creatures and objects would be welcomed, as they help to give a person control over previously unattainable aspects of electronic worlds. The inventor therefore proposes a system and tools to enable to create electronic objects and creatures in a user-friendly and easily understood manner.
The invention provides a tool to map a 3-D physical object onto a 2-D outline or silhouette in electronic format. For example, the 3-D object is illuminated and its shadow is cast onto an array of light-sensors. The light sensors enable to translate the shadow into a 2-D bitmap. Rotating the 3-D object gives another shadow and another bitmap. Preferably, each bitmap is associated with information about a relative orientation of the light source, the physical object and the sensor array. The collection of bitmaps and relative orientations enables to reconstruct a 3-D graphics representation of the physical object""s shape. For example, each voxel is removed from a voxel space that does not belong to a cylinder with a specific bitmap as cross-section, when the bitmap is projected onto the voxel space in its proper orientation.
This process works acceptably well for an object whose surface is convex anywhere. However, a physical object with a concave portion, e.g., an apple from which someone has taken a bite, or a teacup, may give rise to a distorted graphics representation. This is due to the concave portions being masked in all orientations of the object by portions of the physical object surrounding the concave part. Therefore, the inventor proposes to provide software tools to enable the user to deform the 3-D graphics object so as to refine the surface: create concave portions, thru-holes, outgrowths, etc. The graphics object is preferably assigned a coherence: when the user deforms the graphics object by displacing or otherwise modifying its surface (the equivalent of pulling or pushing in the physical world) at a certain location the neighborhood of that location is deformed as well to ensure continuity of the model is ensured. For example, a virtual elephant is created by first using shadowgrams of (a model of) an elephant to get an intermediate graphics object, and then the voxels of the intermediate object are deformed to get a closer approximation of the elephant""s shape or of the shape of a totally different virtual creature.
Assume that the graphics model is to represent an animated articulated creature: a humanoid, a quadruped, an arachnid, a penguinoid, etc., etc. Preferably, the software tools comprise pre-defined skeletons or matchstick figures onto which the graphics model can be draped, possibly after some resealing. The model is attached to the skeleton, e.g., at the latter""s extremities and joints, by defining that certain voxels of the model move with specific points of the skeleton. The skeleton is movable using pre-defined scripts for, e.g., walking, flying, jumping, turning around, etc. Due to the coherence and elasticity defined for the graphics model, the surface of it is then allowed to follow the movement of the skeleton in a more natural way.
If the physical object has one or more axes or one or more planes of symmetry, fewer bitmaps are needed to describe the object. Symmetry operations then reconstruct the graphics object from the part of the scanned physical object.
The shadow casting method can be used to separately create multiple graphics objects for a single compound graphics object. For example, a graphics model of a steam locomotive is created by shadow-casting basic components (e.g., the spoked wheels, the cab, the boiler and firebox) in combination with using pre-defined graphics elements (cubes, spheres, rods, cylinders) and assembling the graphics objects in a virtual environment.
If 3-D is not required in the virtual environment, the physical object is mapped onto a single bitmap using shadow-casting as described above in order to create a 2-D silhouette.
Texture mapping can be applied to the eventual graphics model to give it a specific appearance.
A user may create the bitmaps him/herself, e.g., as based on captured silhouettes, and submit the set of bitmaps to a service on the Internet. The service converts the set into a 3-D graphics model in terms of voxels or another representation, and sends it back to the user for refining or personalizing, or ready for use in a virtual environment or as decoration. The service may also take care of the refining according to, e.g., a specification submitted by the user, and of providing a script for animation as discussed above, etc.
Accordingly, the inventor provides a relatively inexpensive software tool to create graphics objects from real physical objects, by starting with bitmaps for an intermediate graphics model made by shadowcasting, and then by modifying its surface using elastic or inelastic deformation or chipping or drilling away voxels, texture mapping, coloring, etc. The tool is relatively easy to use, and is especially interesting as a toy, as entertainment, for educational purposes or for rapid prototyping. The tool is low-cost by virtue of, among other things, adequate processing power of commercially available PC""s.
Also, instead of shadow-casting equipment, the user takes pictures of the physical object using a digital camera, and converts these digital pictures into bitmap silhouettes using a graphics editing software program or a photo editing software program. The user then has to specify to some degree the relative angular position of the different silhouettes so as to associate the viewpoints of the silhouettes with the relative orientation of the object with respect to the camera. For this purpose, a tripod and a paper target with predefined angles can be used, for example.